package net.servir.censo.service.impl;

import java.util.LinkedList;
import java.util.List;

import net.servir.censo.dao.CensoDAO;
import net.servir.censo.model.Ambito;
import net.servir.censo.model.Ejecutora;
import net.servir.censo.model.Etapa;
import net.servir.censo.model.PuestoTipo;
import net.servir.censo.model.ResponsableEjecutoraAmbito;
import net.servir.censo.model.ResponsableIdentificacion;
import net.servir.censo.model.Sistema;
import net.servir.censo.service.CensoService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class CensoServiceImpl implements CensoService {

	@Autowired
	private CensoDAO censoDAO;
	
	public LinkedList<Sistema> ObtenerSistema()
	{
		return 	censoDAO.ObtenerSistema();	
	}

	public LinkedList<Ambito> ObtenerAmbito(Number id_sistema)
	{
		return 	censoDAO.ObtenerAmbito(id_sistema);	
	}
	
	public LinkedList<Ejecutora> ObtenerEjecutora(Number id_ejecutora)
	{
		return 	censoDAO.ObtenerEjecutora(id_ejecutora);
	}
	
	public LinkedList<ResponsableIdentificacion> ObtenerResponsableIdentificacion(String dni)
	{
		return censoDAO.ObtenerResponsableIdentificacion(dni);
	}

	public ResponsableIdentificacion GetResponsableIdentificacion(String dni, Number idAmbito, Number idSistema)
	{
		return censoDAO.GetResponsableIdentificacion(dni, idAmbito, idSistema);
	}
	
	
	public List ObtenerRptEjecutorCenso(Number id_ambito,	Number id_ejecutora) 
	{
		censoDAO.GenerarRptEjecutorCenso(id_ambito, id_ejecutora);
		return censoDAO.ObtenerRptEjecutorCenso(id_ambito, id_ejecutora);
	};
	
	public Integer ValidarUsuario(String dni, String clave)
	{
		return censoDAO.ValidarUsuario(dni, clave);	
	};
	
	public Integer ValidarUsuarioAmbito(String dni, String clave)
	{
		return censoDAO.ValidarUsuarioAmbito(dni, clave);	
	};

	public List ObtenerRptEjecutoraCenso(Number id_ejecutora, Number id_ambito,Number para_reporte,String dni,String nombre, String puesto_tipo)
	{
		return censoDAO.ObtenerRptEjecutoraCenso(id_ejecutora, id_ambito,para_reporte,dni,nombre,puesto_tipo);
	}
	
	public Integer numObservacion(Number idEjecutora, Number idAmbito) 
	{
		return censoDAO.numObservacion(idEjecutora, idAmbito);
	}
	
	public List ObtenerRptResumenEjecutoraCenso(Number id_ejecutora, Number id_ambito)
	{
		return censoDAO.ObtenerRptResumenEjecutoraCenso(id_ejecutora, id_ambito);
	}
	
	public List RptFuncionLeyenda (Number id_ambito)
	{
		return censoDAO.RptFuncionLeyenda (id_ambito);
	}
	
	public List RptPuestoLeyenda(Number id_ambito)
	{
		return censoDAO.RptPuestoLeyenda (id_ambito);
	}
	
	public void DeleteServicioCivil(Integer idAmbito, Integer idServicioCivil) {
		censoDAO.DeleteServicioCivil(idAmbito,  idServicioCivil);
		
	}

	public Integer ObtenerNumeroFunciones(Integer idAmbito) {
		return censoDAO.ObtenerNumeroFunciones(idAmbito);
	}

	public Integer ObtenerNumeroPuestos_tipo(Integer idAmbito) {
		return censoDAO.ObtenerNumeroPuestos_tipo(idAmbito);
	}
	
	public String ObtenerFechaHoraSistema() {
		return censoDAO.ObtenerFechaHoraSistema();
	}

	public String ObtenerFechaSistema() {
		return censoDAO.ObtenerFechaSistema();
	}

	public Ambito GetAmbito(Number idAmbito) {
		return censoDAO.GetAmbito(idAmbito);
	}

	public Sistema GetSistema(Number idSistema) {
		return censoDAO.GetSistema(idSistema);
	}
	
	public Sistema getSistema(Number idSistema, String dni, Integer idAmbito){
		return censoDAO.getSistema(idSistema,dni,idAmbito);
	}
	
	public Ejecutora GetEjecutora(Number idEjecutora){
		return censoDAO.GetEjecutora(idEjecutora);
	}
	
	public ResponsableEjecutoraAmbito GetResponsableEjecutoraAmbito(Number idResponsable,Number idEjecutora, Number idAmbito){
		return censoDAO.GetResponsableEjecutoraAmbito(idResponsable,idEjecutora, idAmbito);
	}
	
	public void ActualizarTelefonoEjecutora(Number idEjecutora, String telefonoEjecutora){
		censoDAO.ActualizarTelefonoEjecutora(idEjecutora, telefonoEjecutora);
	}
	
	public List<Etapa> ObtenerEtapasAmbito(Number idAmbito){
		return censoDAO.ObtenerEtapasAmbito(idAmbito);
	}
	
	public void FinalizarInscripcionParticipantes(Number idResponsable,Number idEjecutora, Number idAmbito){
		censoDAO.FinalizarInscripcionParticipantes(idResponsable,idEjecutora,idAmbito);		
	}
	
	public List<ResponsableEjecutoraAmbito> ObtenerAmbitosResponsable(Number idResponsable){
		return censoDAO.ObtenerAmbitosResponsable(idResponsable);
	}
	
	public List<PuestoTipo> getPuestoTipos(Number idSistema)
	{
		return censoDAO.getPuestoTipos(idSistema);
	}
	public Integer getIdPuestoOperador(Number idSistema)
	{
		return censoDAO.getIdPuestoOperador(idSistema);
	}
	public String esJefePuestoTipo(Number idPuestoTipo)
	{
		return censoDAO.esJefePuestoTipo(idPuestoTipo);
	}

	public Sistema getSistema(Integer idSistema)
	{
		return censoDAO.getSistema(idSistema);
	}
}
